In prior art systems, human interfaces are described with a standardized human interface description language (SIDL). The term “human interface” as used hereinafter, describes any kind of application interface for a human to interact with application programs that run on a computer. Examples for human interfaces are graphical user interfaces (GUI) or voice user interfaces (VUI).
Typically the SIDL is a “Extensible Markup Language” (XML) based language that provides a set of layout components. A layout component comprises description instructions that describe a specific element of the human interface. These description instructions are called layout element, hereinafter. A transformer program, comprising transformation rules, transforms the layout element into a browser compliant description.
A browser, as used hereinafter, is a computer program that“renders” a document which is written in a markup language, such as “Hyper. Text Markup Language” (HTML), “Wireless Markup Language” (WML) or “Voice Extensible Markup Language” (VXML), into a visual or audio presentation of this document. A browser can be device specific. For example, a browser that renders a HTML document on a personal computer screen differs from a browser that renders a WML document on a wireless application protocol (WAP) cell phone display.
The browser compliant description can be rendered by a conventional browser into corresponding visual or audio layout elements on an output device of a computer as part of the human interface. In a SIDL, the layout elements typically have a an application independent character, such as “row,” “cell,” “table,” “grid,” etc. As used hereinafter, such layout elements are called basic layout elements. Basic layout elements can be reused in any context of any application.
However, an application programmer, who wants to create an application specific human interface, desires to describe this human interface by using descriptive terms that are known in the field of the application. The term “application programmer,” as used hereinafter, also comprises users that create human interfaces. For example, a controller of a company can become an “application programmer” when designing an human interface to capture planning data for the next fiscal year from other managers in the company. For example, when describing a survey interface, it is convenient to describe the structure of the human interface by using terms like “questionnaire” or “question” instead of the previously listed application independent terms. When adding application specific layout elements to a SIDL, the SIDL can become confusing. Many different layout elements result in similar or equal visual layout elements, thus overloading the standardized SIDL through redundant application specific layout elements. This redundancy impedes the application programmer in efficiently identifying an appropriate layout element from an ever growing list of layout elements. Further, the transformer program has to be adjusted each time, when a new layout element is added, because a transformation rule for the new layout element has to be added. This is an inconvenient procedure for the SIDL because a standard should not be changed frequently.
Further; in the XForms 1.0 specification (8 Jun. 2001) of the World Wide Web Consortium (W3C), the assumption is made that data information and layout information are separated throughout the whole human interface design process. This requires the exact knowledge of the data model that is used in an application. Data model, as used hereinafter, corresponds to a data description of data that are used (displayed, played, captured, etc.) by the human interface. However, there are applications where the data model of the application is not known when the human interface design starts. For example, when an application programmer builds a survey application, typically, the information that is to be captured through a survey form (questionnaire) is defined while developing the survey. Input fields are added to the form as they are defined during the design process. In general, no data model exists that describes the corresponding data (e.g. dependencies between data, such as the grouping of multiple questions into a question group).
Further, for example, when a user interacts with a web application (e.g. user submits data) through a human interface, the human interface typically is re-rendered in its initial state. Often the layout status of the human interface before the interaction is lost because the application does not memorize it.